Relationship management for data modeling in an integrated development environment

ABSTRACT

A system and method of relationship management for data modeling in an integrated development environment is provided. A method of incorporating a program code file includes generating a relational schema of symbols in the program code file based on a framework for models in the integrated development environment, the schema comprising at least two related tables; determining a relationship between the at least two tables in the relational schema; adding definitions from the program code file for symbols in the relational schema to a definition set retaining definitions of symbols; and producing proxy definitions for use with the definition set for each symbol in the program code file without a definition in the definition set.

FIELD OF THE INVENTION

The present invention relates to the field of data modeling inintegrated development environments.

BACKGROUND OF THE INVENTION

An integrated development environment (IDE) provides a set of tools toassist in the development of a computer program. Such an environmentgenerally supports various tasks and often various programminglanguages. Given the integration between various files forming acomputer program project, each time a file is changed the file isvalidated to ensure that information on the file in the environment iscorrect. The validation involves parsing each file that changed as wellas each file that the changed file references. If there are N changedfiles that all reference each other then N*N parses are performed. Sincefile-to-file dependencies may not be maintained, all of these files aregenerally parsed. To ensure correctness of the data in a workspace inthe IDE, the time for such validation is not amortized over otheroperations. With a workspace composed of many files or large files, itcan be cumbersome to wait for validation of a file, involving completelyparsing many files, after each change before proceeding with otheractions.

SUMMARY OF THE INVENTION

In accordance with an aspect of the present invention there is provideda method of incorporating a program code file into an integrateddevelopment environment, including: generating a relational schema ofsymbols in the program code file based on a framework for models in theintegrated development environment, the schema comprising at least tworelated tables; determining a relationship between the at least twotables in the relational schema; adding definitions from the programcode file for symbols in the relational schema to a definition setretaining definitions of symbols; and producing proxy definitions foruse with the definition set for each symbol in the program code filewithout a definition in the definition set.

In accordance with an aspect of the present invention there is provideda method of managing relationships between program code files in anintegrated development environment, including: detecting a change in oneof the program code files as being one of “add”, “remove” or “update”,removing symbols in the changed program code file from a relationalschema if the change is one of “remove” or “update”, the relationalschema comprising at least two related tables with symbols from theprogram code files based on a framework for models in the integrateddevelopment environment; incorporating symbols from the changed programcode file in the relational schema if the change is one of “add” or“update”, verifying a relationship between the at least two tables inthe relational schema; removing definitions from a definition set forsymbols from the changed program code file that were previously removedfrom the relational schema, the definition set retaining symboldefinitions for the program code files; adding definitions to thedefinition set from the changed program code file for symbols previouslyincorporated into the relational schema; and producing proxy definitionsfor use with the definition set for each symbol in the changed programcode file previously incorporated into the relational schema without adefinition in the definition set.

In accordance with an aspect of the present invention there is provideda method of managing relationships between program code files in anintegrated development environment, including: modifying a relationalschema according to a change in one of the program code files, therelational schema comprising at least two related tables with symbolsfrom the program code files based on a framework for models in theintegrated development environment; determining a relationship betweenthe at least two tables in the relational schema; modifying a definitionset according to the change to include definitions from the changedprogram code file for symbols therefrom in the relational schema intothe definition set, the definition set retaining symbol definitions forthe program code files; and producing proxy definitions for use with thedefinition set for each symbol in the changed program code file withouta definition in the definition set.

In accordance with an aspect of the present invention there is provideda system for incorporating a program code file into an integrateddevelopment environment including: a save mechanism for modifying arelational schema according to a change in one of the program codefiles, the relational schema comprising at least two related tables withsymbols from the program code files based on a framework for models inthe integrated development environment; a validation mechanism fordetermining a relationship between the at least two tables in therelational schema; a dependency set mechanism for modifying a definitionset according to the change to include definitions from a changedprogram code file for symbols therefrom in the relational schema intothe definition set, the definition set retaining symbol definitions forthe program code files; and a proxy mechanism for producing proxydefinitions for use with the definition set for each symbol in thechanged program code file without a definition in the definition set; adatabase for retaining the relational schema, the relationship betweenthe at least two tables and the definition set; and a controller forcoordinating the save mechanism, the validation mechanism, thedependency set mechanism, the proxy mechanism and communications withthe database.

In accordance with an aspect of the present invention there is provideda computer-readable medium having computer-executable instructions forincorporating a program code file into an integrated developmentenvironment, including: generating a relational schema of symbols in theprogram code file based on a framework for models in the integrateddevelopment environment, the schema comprising at least two relatedtables; determining a relationship between the at least two tables inthe relational schema; adding definitions from the program code file forsymbols in the relational schema to a definition set retainingdefinitions of symbols; and producing proxy definitions for use with thedefinition set for each symbol in the program code file without adefinition in the definition set.

In accordance with an aspect of the present invention there is provideda computer-readable medium having computer-executable instructions formanaging relationships between program code files in an integrateddevelopment environment, comprising: detecting a change in one of theprogram code files as being one of “add”, “remove” or “update”, removingsymbols in the changed program code file from a relational schema if thechange is one of “remove” or “update”, the relational schema comprisingat least two related tables with symbols from the program code filesbased on a framework for models in the integrated developmentenvironment; incorporating symbols from the changed program code file inthe relational schema if the change is one of “add” or “update”,verifying a relationship between the at least two tables in therelational schema; removing definitions from a definition set forsymbols from the changed program code file that were previously removedfrom the relational schema, the definition set retaining symboldefinitions for the program code files; adding definitions to thedefinition set from the changed program code file for symbols previouslyincorporated into the relational schema; and producing proxy definitionsfor use with the definition set for each symbol in the changed programcode file previously incorporated into the relational schema without adefinition in the definition set.

In accordance with an aspect of the present invention there is provideda computer-readable medium having computer-executable instructions formanaging relationships between program code files in an integrateddevelopment environment, including: modifying a relational schemaaccording to a change in one of the program code files, the relationalschema comprising at least two related tables with symbols from theprogram code files based on a framework for models in the integrateddevelopment environment; determining a relationship between the at leasttwo tables in the relational schema; modifying a definition setaccording to the file change to include definitions from the changedprogram code file for symbols therefrom in the relational schema intothe definition set, the definition set retaining symbol definitions forthe program code files; and producing proxy definitions for use with thedefinition set for each symbol in the changed program code file withouta definition in the definition set.

Proxy definitions are produced for each symbol in the changed programcode file that does not have a definition in the definition set.

Other aspects and features of the present invention will become apparentto those ordinarily skilled in the art upon review of the followingdescription of specific embodiments of the invention in conjunction withthe accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary computing environment in which the presentinvention may be implemented;

FIG. 2 is a system diagram of an integrated development environmentincluding a system for incorporated files thereinto;

FIG. 3A to C show a method for incorporating a file into an integrateddevelopment environment;

FIG. 4 shows a method for validating a relationships table in an upwardsdirection;

FIG. 5 shows a method for validating the relationships table in adownwards directions; and

FIG. 6 shows a pictorial representation of the contents of a database ofthe integrated development environment of FIG. 2.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE PRESENT INVENTION

FIG. 1 illustrates a configuration of a computer 100 in which thepresent invention may be implemented.

The computer 100 includes a central processing unit (CPU) 102, a memory104, an input/output interface 106 and a bus 108. The CPU 102, thememory 104 and the input/output interface 106 are connected with oneanother via the bus 108. The input/output interface 106 is configured sothat it can be connected to an input/output unit 112.

The present invention may be embodied in a program stored in, forexample, the memory 104. Alternatively, the present invention may berecorded on any type of recording medium such as a magnetic disk or anoptical disk. The present invention recorded on such a recording mediumis loaded to the memory 106 of the computer 100 via the input/outputunit 112 (e.g. a disk drive).

The CPU 102 can be a commercially available CPU or a customized CPUsuitable for operations described herein. Other variations of CPU 102can include a plurality of CPUs interconnected to coordinate variousoperations and functions. The CPU 102 contains resources for theexecution of the present invention including registers 110 that enablebasic functions such as placing a value into a specified register(referred to as a “load” operation), copying a value stored in aspecified register to a specified memory location (referred to as a“store” operation), and performing arithmetic operations, such asaddition and multiplication, on values stored in memory locations andregisters. The computer 100 serves as an apparatus for performing thepresent method by the CPU 102 executing the present invention.

FIG. 2 is a system diagram of an integrated development environment(IDE) 200 in which a computer program may be represented as a modelshowing components of the program (e.g. objects in an object-orientedproject) and relationships therebetween. The model may be presented inthe IDE 200 as a graph data structure of components in which thecomponents have named properties and relationships to other components.Each model may be composed of many files, each of which may containmultiple components. The model is created when files that form theproject are incorporated into the IDE 200. The IDE 200 includes aworkspace (not shown) in which multiple models may be presented to auser.

The IDE 200 includes a controller 228, a file build mechanism 236, asave mechanism 240, a modeling mechanism 210, a validation mechanism234, a symbol resolve mechanism 250, a proxy mechanism 206, a definitionset mechanism 230, an editor 216 and a database 214. The controller 228coordinates the various other components in the IDE 200 and directs thedata and control flow therebetween. The file build mechanism 236incorporates a new or changed program code file 204 into the IDE 200.The save mechanism 240 saves the incorporated file 204 into the database214. The modeling mechanism 210 creates a model from the file 204,including adding new files to the model and incorporating changes toexisting files into the model. The validation mechanism 234 validatesthe file 204 to provide all current references and definitions of dataand objects to maintain relationships between files in the IDE 200. Thesymbol resolve mechanism 250 makes resolutions in the file 204 as to thedefinition of objects and data therein. The definition set mechanism 230maintains a definition set with definitions from files in the IDE 200.The definition set is a collection of symbol definitions that provides aview of saved content in the IDE 200 workspace. The editor 216 enables afile in a model to be changed.

The controller 228 comprises a change detection mechanism 246 thatmonitors the workspace of the IDE 200. Each model in the workspace iscomposed of multiple files. The change detection mechanism 246 monitorsthe status of each of the models and the files of which they arecomposed to detect a change in either the model or in one of the files.This change can be in the form of a request to add a new file to a modelor to the workspace, a request to remove a file from a model or theworkspace, or an editorial change to a file in one of the models in theworkspace (such as would be implemented through the editor 216).Monitoring a change in a file in one of the models in the workspace maybe performed by monitoring the profile of the file currently in theworkspace and comparing it with the profile of the actual file,assessing file size and last save data and time.

When a request to add the new or changed file 204 in one of the modelsis detected by the change detection mechanism 246, the controllerprovides the file build mechanism 236 with the location of the file 204.If the request detected by the change detection mechanism 246 is toremove the file 204 from one of the models or the workspace, then thelocation and identity of this file 204 is provided directly to the savemechanism 240.

The file build mechanism 236 comprises a load mechanism 218, a parsemechanism 202 and a list build mechanism 220, all of which function toincorporate the new or changed file 204 into the IDE 200. The loadmechanism 218 accepts the file 204 and creates an input data stream fromthe contents of the file 204. The list build mechanism 220 identifiesall references and definitions of symbols, such as data and objects, andcreates a list of public symbols and referenced symbols in the file 204.The public symbols in the file 204 are definitions of symbols (e.g. dataand objects) that are accessible to other files. Referenced symbols inthe files 204 represent those symbols used by the file 204 but definedelsewhere (e.g. public symbols from other files). The parse mechanism202 parses the file 204 to identify and extract references anddefinitions of symbols therein. The references and definitions may bedetermined by searching for symbols in the input stream recognized asproviding a reference or definition.

The parse mechanism 202 parses the file 204 to obtain definitions forpublic symbols and information on referenced symbols. The information onthe referenced symbols may include any interface information that can begarnered from the reference in the file 204.

The lists (public symbols and referenced symbols) are provided to thesave mechanism 240 for storage in the database 214. The save mechanism240 comprises a schema formation mechanism 212, and a dependency updatemechanism 248. If the file 204 is a new file being incorporated into theIDE 200 then the list is provided directly to the schema formationmechanism 212; otherwise, the list is provided to the dependency updatemechanism 248. The schema formation mechanism 212 comprises a publicsymbols mechanism 222, and a referenced symbols mechanism 224 forcreating a relational schema in the database 214 based on the contentsof the public symbols list and the referenced symbols list.

The schema formation mechanism 212 receives the lists and examines thedatabase 214 based on the lists. The database 214 contains a publicsymbols table formed with public symbol definitions and the location ofthe file 204 in which the symbol is defined, a referenced symbols tablewith the symbol references from the list and the location of the file204 that is referencing the symbols, and a definition set containing thedefinition for all symbols that have been defined or referenced in thefile 204 forming the model. The location of the file 204 in both thepublic symbol table and the referenced symbols table may be in the formof a universal resource indicator (URI) identifying the file thatdefines the symbol as well as the location of the file. An identifierfor the file 204 may be included in the public symbols table and thereferenced symbols table in the form of a name, location, etc.

The schema formation mechanism 212 searches the database 214 todetermine if the entries in the public symbols and the referencedsymbols list are in the definition set. This information is provided tothe public symbols mechanism 222 and the referenced symbols mechanism224 along with the appropriate list.

The public symbols mechanism 222 assesses the type of entry for thepublic symbol in the definition set. If a previous file contained thedefinition for the public symbol then the definition set will have anactual definition for that symbol. In this case there may be twodefinitions for the public symbol in the model. This will prompt anerror message to be presented to the user indicating that there are twodefinitions for a public symbol. If the previous file only contained areference to the symbol then there may be a proxy definition for thesymbol in the definition set. The proxy definition includes anyinformation about the symbol that can be garnered from the reference.The proxy definition shows the known public interface but notnecessarily the body of the symbol definition. If the entry in thedefinition set is a proxy definition then the public symbols mechanism222 obtains file parsing data from the parse mechanism 202. Thedefinition of the public symbol is obtained from the parsed data. Thisdefinition is added to the definition set to replace the proxydefinition so that the definition set now contains an actual definitionof the public symbol.

If the public symbol does not have a definition in the definition setthen the public symbols mechanism 222 obtains the public symbolsdefinition from the parse mechanism 202. This definition is added to thedefinition set.

The pubic symbols mechanism 222 also stores the entries of the publicsymbols list from the list build mechanism 220 in the public symbolstable in the database 214.

The referenced symbols mechanism 224 also assesses the type of entry forthe referenced symbols in the definition set. If a previous filecontained the definition for the referenced symbol then the definitionset contains an actual definition for the referenced symbol.

If the definition set contains the actual definition for the symbol, theexisting definition in the definition set is retained. If the entry inthe definition set is a proxy definition then the existing proxydefinition is replaced in the set. If the referenced symbol does nothave a proxy or actual definition in the set then a proxy definition iscreated for the definition set. The proxy mechanism 206 in the IDE 200creates the proxy definition.

After the public symbols table and the referenced symbols table havebeen created or populated based on the file 204, then the tables arevalidated by the validation mechanism 234. A map of the relationshipsbetween files is created in the database 214 by the validation mechanism234.

The public symbols table and the referenced symbols table provide astore of the public symbol definitions and references to symbols in thefile 204 so that the file 204 is not parsed by the file build mechanism236 every time information on the dependencies of the file 204 isrequested.

If the file 204 is a previously incorporated file that has been changedor the request received by the controller 228 is to remove the file 204,then the dependency update mechanism 248 coordinates the save and updateprocess. The dependency update mechanism 248 comprises a remove symbolsmechanism 252 for removal of symbols in the file 204 from the database214 and a change symbols mechanism 254 for coordinating changes.

The remove symbols mechanism 252 receives the location and identifierfor the file 204 to be removed from a model or the workspace. The removesymbols mechanism 252 removes all public symbols defined in the file 204from the public symbols table and all referenced symbols in the file 204are removed from the referenced symbols table. The remove symbolsmechanism 252 provides the validation mechanism 234 with the locationand identifier of the file 204 so that the dependencies of other filesin the model can be updated and validated based on the removal of thisfile 204.

The change symbols mechanism 254 receives the location and identifierfor the file 204 in the model or workspace that has been changed. Thechange symbols mechanism 254 provides the location and identifier forthe file 204 to the remove symbols mechanism 252 so that all publicsymbols defined in the file 204 are removed from the public symbolstable and all referenced symbols in the file 204 are removed form thereferenced symbols table. As with the case of file removal, the removesymbols mechanism 252 provides the validation mechanism 234 with thelocation and identifier of the file 204 so that the dependencies ofother files in the model can be updated and validated based on theremoval of this file 204. All of the existing information on the file204 is removed from the public symbols table and the referenced symbolstable so that these tables do not contain old information on the file204 that has been changed. After this old information has been removedthe change symbols mechanism provides the location and identifier forthe file 204 that has been changed to both the public symbols mechanism222 and the referenced symbols mechanism 224 so that the changed file204 can be parsed and the public symbol definitions and referencedsymbols in the file 204 can be included in the public symbols table andthe referenced symbols table.

The public symbols mechanism 222 interfaces with the definition setmechanism 230 to examine the definition set to determine if the publicsymbols in the changed file 204 are defined in the definition set. Thepresence of a previous public symbols definition prompt the publicsymbols mechanism 222 to produce an error message. If the public symbolis not defined in the definition set then the public symbols mechanism222 co-ordinates parsing of the file 204 with the parse mechanism 202 toextract the definition from the file 204. This extracted definition isprovided to the definition set mechanism 230 for insertion into thedefinition set.

The referenced symbols mechanism 224 likewise interfaces with thedefinition set mechanism 230 to examine the definition set to determineif the referenced symbols are defined therein. The presence of anexisting definition for a referenced symbol in the definition set isassessed to determine if it is a proxy or actual definition. An actualdefinition is retained whereas a proxy definition is replaced by a newproxy definition from the file 204. If a referenced symbol definitiondoes not exist in the definition set then one is created by the proxymechanism 206. This proxy definition is provided to the definition setmechanism 230 for insertion into the definition set.

The definition set mechanism 230 interfaces with the public symbolsmechanism 222 and the referenced symbols mechanism 224 to add andmaintain definitions for the public symbols and the referenced symbolsin the definition set in the database 214.

After the public symbols table and the referenced symbols table havebeen repopulated, then the tables are validated by the validationmechanism 234. The map of the relationship between the tables ismaintained by the validation mechanism 234.

The proxy mechanism 206 creates proxy definitions, or skeletondefinitions, for symbols in the file 204 that are not resolved. A proxydefinition includes a definition of the symbol according to theinformation in the reference in the file 204. This proxy definitionaccelerated parsing of a file by enabling parts of the referents of thesymbol to be determined from the public symbols table. The proxymechanism 206 comprises a proxy structure mechanism 258 and a proxyoperation mechanism 256.

The proxy mechanism 206 receives information from the referenced symbolsmechanism 224 when a referenced symbol that does not have a definitionin the definition set is encountered. The information provided by thereferenced symbols mechanism 224 may include sections of the file inwhich the referenced symbol is used as well as the context in which itis used (i.e. other associated symbols and relevant information on thesesymbols). From this information the proxy structure mechanism 258 andthe proxy operation mechanism 256 create a proxy definitions for thereferenced symbol that shows an interface for the symbol but not thebody of the definition of the symbol.

The proxy mechanism 206 extracts all reference information for thesymbol from the file 204 and provides this information to the proxystructure mechanism 258 and the proxy operation mechanism 256. The proxystructure mechanism 258 searches the references to determine thestructure of the symbol, including what is the type of the symbol (i.e.object or specific type of data) and what might be contained in thesymbol (i.e. data in an object). The proxy operation mechanism 256searches the references to determine the functionality of the symbolincluding what inputs might be accepted and what outputs might beproduced (generally the type of the input and output). Such informationmay be obtained from the public symbols table in the database 214.

If there was a previous proxy definition in the definition set the proxymechanism 206 may either replace the existing definition with a newdefinition or may use the information from the file 204 on thereferenced symbol to enhance the existing definition.

The proxy mechanism 206 may also include the proxy definition in thefile 204 that is used in the workspace of the IDE 200 to accelerateparsing at a later time. A referenced symbol with a definition in thedefinition set provides a dangling reference since the definition forthe symbol is not known in the workspace of the IDE 200. Thus, since adefinition is created (a proxy definition) for the symbol, memory spacein which a value can be retained is provided for the symbol.

The validation mechanism 234, used after the public symbols table andthe referenced symbols table have been populated, creates and maintainsa relationship table, thus providing the map of relationships betweenfiles and the tables. The validation mechanism 234 comprises arelationship table mechanism 226 and a dependency validation mechanism208 which comprises a reference match mechanism 232 and a dependencylist mechanism 266.

The relationship table mechanism 226 creates the relationship table inthe database 214 to provide a matching of the public symbols table withthe referenced symbols table. The relationship table shows where asymbol is publicly defined and where the symbol is referenced. Therelationship table may be used for creating a dependency graph for amodel.

The relationship table mechanism 226 is provided with the cause of thechange (i.e. add, remove, or change) and an identifier for the file(i.e. name, location, etc.) If the cause is remove or change then therelationship table mechanism 226 removes the public symbols defined inthe file 204 from the relationship table as well as all references tosymbols in the file 204. References to the public symbols in the file204 are validated by the dependency validation mechanism 208.

The dependency validation mechanism 208 checks the dependencies betweenfiles to determine the effects of the change. The reference matchmechanism 232 receives the location and indicator for the file 204 andchecks the relationship table to determine if any files in the modeldepend on public symbols that were defined by the file 204. If such adependency exists, the newly added public symbol in the public symboltable may resolve previously unresolved dependencies or may cause apreviously resolved dependency to be multiply resolved. A dependency ina file is considered to be resolved when the location of the filecontaining the actual definition (as opposed to proxy definitions) ofthe symbol which is depended upon is known. Conversely, a dependency isconsidered to be unresolved when the definition of the symbol in thefile is not located in the public symbols table, thus is not known. Amultiply resolved dependency is considered to be when there appears tobe multiple definitions of the symbol in the public symbol table. Thereference match mechanism 232 examines the public symbol table, thereference symbols table and the relationship table to determine if allof the symbols referenced by the file are defined. If there is areference to an undefined symbol in the file or if there appears to bemultiple definitions of a symbol, then an error may be generated toinform the user of the situation. The validation mechanism 234 storesresolved and multiply resolved dependencies in the relationship table asinput for future change validations.

The reference match mechanism 232 performs matching by one of two ways:based on the referenced symbols table or based on the public symbolstable. When the reference match mechanism 232 performs matching based onthe referenced symbols table, the referenced symbols table is searchedto obtain all references to symbols made by the file 204. For eachreference, the public symbols table is searched to locate matchingsymbols that resolve the reference. This produces a location of thedefinition of each symbol referenced by the file 204. The location ofthese files are inserted in the relationship table as being “down” filesto the current file 204 as they are the files on which the current file204 is dependent. If there is not exactly one match for the referencesymbol in the public symbols table then an error has occurred and a useris informed of this situation. When the reference match mechanism 232performs matching based on the public symbols table, the public symbolstable is searched to obtain all public symbols defined in the file 204.For each reference, the referenced symbols table is searched to locatereferences to the symbols defined by the file 204. Each file containinga reference to a symbol define in the current file 204 is added to therelationship table as “up” files for the current file 204 since thesefiles depend on the current file.

The dependency list mechanism 266 creates a dependencies list for thefile 204 that is stored in the database 214. The dependencies listcontains a list of all files that depend on the symbols defined by thefile 204. The dependencies list may be an existing list that ismaintained or it may be the result of a query made to the relationshiptable each time the dependency information is requested.

The modeling mechanism 210 creates and updates the model based on thefiles that form the model. The modeling mechanism 210 comprises agenerate model mechanism 242. The generate model mechanism 242 generatesa new model on the basis of newly incorporated files or updates themodel on the basis of changed or removed files.

During the creation, changing or parsing of the model, the definition ofa symbol referenced by the file 204 may be requested. The symbol resolvemechanism 250 obtains such definitions for references from thedefinition set in the database 214.

FIGS. 3A to C show a method 300 for incorporating the file 204 into theintegrated development environment 200 shown in FIG. 2. The file 204 isloaded into the IDE 200 as an input stream in step 302. A list of all ofthe public symbols in the file 204 is made in step 304 and a list of allof the referenced symbols in the file 204 is made in step 306.

The cause for updating the file 204 in the IDE 200 is determined in step308 as being one of “remove,” “change,” or “add.” If the file 204 wasupdated because of a change to the file 204 or a request to removed thefile 204 from the model or because of a change in the file 204, asdetermined in step 310, then the public symbols in the list are removedfrom the public symbols table in step 312. The referenced symbols areremoved from the referenced symbols table in step 314. The definitionsin the definition set for the public symbols in the list are removed instep 316. The relationships table is validated in step 318 to removepublic symbols in the public symbols list and referenced symbols in thereferenced symbols list from the relationships table.

If the reason for updating the file 204 is because the file 204 changedor was added, as determined in step 320, then it is determined in step322 if the public symbols in the file 204 are defined in the definitionset. If the public symbols are defined in the definition set then it isdetermined in step 324 if this is an actual definition or a proxydefinition. If the definition is a proxy definition then the file 204 isparsed to extract the actual definition of the public symbol therefromin step 326. The actual definition is then inserted into the definitionset to replace the proxy definition in step 328.

If the public symbol was not in definition set as determined in step 322then the file 204 is parsed in step 330 to extract the public symboldefinition. The extracted public symbol definition is added to thedefinition set in step 332.

After the public symbol definitions have been added to the definitionset, or if a previous entry in the definition set for the public symbolwas an actual definition, step 334 determines if there are referencedsymbols in the referenced symbols list that have definitions in thedefinition set. If these definitions are proxy definitions, asdetermined in step 336, then the file 204 is parsed to extractinformation on the referenced symbol therefrom in step 338. A proxydefinition is created in step 340 from this extracted information and isinserted in the definition set in step 342. The created proxy definitionmay either be a new proxy definition based solely on the informationobtained from the parse in step 338 or the existing proxy definition mayhave been enhanced by the extracted information.

If there is no definition in the definition set for the referencedsymbol as determined in step 334 then the file 204 is parsed to extractinformation on the referenced symbol in step 344. This information isused to create a proxy definition for the referenced symbol in step 346which is added to the definition set in step 348.

After definitions have been added to the definition set for referencedsymbols or a previous definition for the referenced symbol in thedefinition set was an actual definition or there were no referencedsymbols in the file 204, the public symbols in the public symbols listare stored in the public symbols table in the database 214 in step 350.The referenced symbols in the referenced symbols list are stored in thereferenced symbols table in step 354.

Relationships between the public symbols in the public symbols table andreferenced symbols in the referenced symbols table are determined instep 354. These relationships are inserted into the relationships tablein step 356.

The relationships table is validated in step 358 by matching symbolsdefinitions and references. This validation may be in either an upwardsdirection (as shown in FIG. 5) or a downwards direction (as shown inFIG. 4) or both.

A list of the files that are dependent on the public symbols in the file204 is created in step 360. After the dependencies list is created or ifthe reason for updating the file 204 was not “change” or “add” asdetermined in step 320, then processing of the model in the IDE 200continues in step 362.

FIG. 4 shows a method 400 for validating the file 204 in a downwarddirection. All of the referenced symbols in the file 204 are located instep 402. The public symbols table is searched in step 404 to locate thereferenced symbols from the file 204 to see if the file containing thedefinition for the referenced symbol can be determined. If thereferenced symbol is found in the public symbols table, as determined instep 406, then the file location of the referenced symbol definition isinserted in the relationships table for the referenced symbol as being a“down” file, or the file containing the actual definition for the symbolin step 408. If the referenced symbol is not found in the public symbolstable, as determined in step 406, then an error message is produced forthe user since there is no definition for the referenced symbol in theIDE 200 in step 410.

FIG. 5 shows a method 500 for validating the file 204 in the upwarddirection. All of the public symbols in the file 204 are located in step502. The referenced symbols table is searched in step 504 to locate thepublic symbols from the file 204 to see if there are any files thatreference or use the public symbols. If the public symbol is found inthe referenced symbols table, as determined in step 506, then thelocation of the file containing the reference of the public symbol isinserted in the relationships table for the public symbol as being an“up” file, or a file containing a reference to the public symbol in step508. If the public symbol is not found in the referenced symbols tablethen processing of the model in the IDE continues in step 510.

FIG. 6 is a pictorial representation of the contents of the database 214of the IDE 200. The database 214 contains the public symbols table 602,the referenced symbols table 604, the relationships table 606, thedefinition set 608 and the dependencies lists 610.

It is apparent to one skilled in the art that numerous modifications anddepartures from the specific embodiments described herein may be madewithout departing from the spirit and scope of the invention.

1. A method of incorporating a program code file into an integrateddevelopment environment, comprising: generating a relational schema ofsymbols in the program code file based on a framework for models in theintegrated development environment, the schema comprising at least tworelated tables; determining a relationship between the at least twotables in the relational schema; adding definitions from the programcode file for symbols in the relational schema to a definition setretaining definitions of symbols; and producing proxy definitions foruse with the definition set for each symbol in the program code filewithout a definition in the definition set.
 2. The method according toclaim 1 wherein the step of generating the relational schema comprises:generating a public symbols table in the relational schema for publicsymbols in the program code file, the public symbols being symbolshaving a definition in the program code file; and generating areferenced symbols table in the relational schema for referenced symbolsin the program code file, the referenced symbols being symbols onlyreferred to in the program code file.
 3. The method according to claim 1wherein the step of determining the relationship comprises: generating arelationships table in the relational schema containing the relationshipbetween the at least two tables.
 4. The method according to claim 1wherein the program code file contains public symbols having adefinition in the program code file and referenced symbols being onlyreferred to in the program code file, and wherein the step of addingdefinitions comprises: parsing the program code file to extractdefinitions for the public symbols therein; and adding the extracteddefinitions to the definition set.
 5. The method according to claim 1wherein the program code file contains public symbols having adefinition in the program code file and referenced symbols being onlyreferred to in the program code file wherein the step of producing proxydefinitions comprises: determining if the definition set contains adefinition for the referenced symbols; parsing the program code file toextract information about the referenced symbols therefrom; formulatinga proxy definition for the referenced symbols without a definition inthe definition set based on the extracted information; adding theformulated proxy definition to one of the definition set or the changedprogram code file.
 6. A method of managing relationships between programcode files in an integrated development environment, comprising:detecting a change in one of the program code files as being one of“add”, “remove” and “update”; removing symbols in the changed programcode file from a relational schema if the change is one of “remove” and“update”, the relational schema comprising at least two related tableswith symbols from the program code files based on a framework for modelsin the integrated development environment; incorporating symbols fromthe changed program code file in the relational schema if the change isone of “add” and “update”; verifying a relationship between the at leasttwo tables in the relational schema; removing definitions from adefinition set for symbols from the changed program code file that werepreviously removed from the relational schema, the definition setretaining symbol definitions for the program code files; addingdefinitions to the definition set from the changed program code file forsymbols previously incorporated into the relational schema; andproducing proxy definitions for use with the definition set for eachsymbol in the changed program code file previously incorporated into therelational schema without a definition in the definition set.
 7. Themethod according to claim 6 wherein the step of incorporating symbolscomprises: generating a public symbols table in the relational schemafor public symbols in the changed program code file, the public symbolsbeing symbols having a definition in the changed program code file; andgenerating a referenced symbols table in the relational schema forreferenced symbols in the changed program code file, the referencedsymbols being only referred to in the changed program code file.
 8. Themethod according to claim 7 wherein the step of generating the publicsymbols table comprises: locating public symbols in the changed programcode file; and adding the located public symbols to the public symbolstable; and wherein the step of generating a referenced symbols tablecomprises: locating referenced symbols in the changed program code file;and adding the located referenced symbols to the referenced symbolstable.
 9. The method according to claim 8 wherein the step of adding thelocated public symbols comprises: adding an identifier of each locatedpublic symbol to the public symbols table; and adding the location ofthe changed program code file to the public symbols table correspondingto the located public symbols in the public symbols table; and whereinthe step of adding the located referenced symbols comprises: adding anidentifier of each located referenced symbol to the referenced symbolstable; and adding the location of the changed program code file to thereferenced symbols table corresponding to the located referenced symbolsin the referenced symbols table.
 10. The method according to claim 6wherein the step of verifying the relationship comprises: generating arelationships table in the relational schema containing the relationshipbetween the at least two tables.
 11. The method according to claim 6wherein the step of determining the relationship comprises: generating arelationships table in the relational schema containing the relationshipbetween the at least two tables, comprising: determining dependencerelationships from the referenced symbols in the program code file basedon the public symbols table; and identifying determined dependencerelationships in the relationships table.
 12. The method according toclaim 6 wherein the step of determining the relationship comprises:generating a relationships table in the relational schema containing therelationship between the at least two tables, comprising: determiningdependency relationships from the public symbols in the program codefile based on the referenced symbols table; and identifying determineddependency relationships in the relationship table.
 13. The methodaccording to claim 6 wherein the program code file contains publicsymbols having a definition in the changed program code file andreferenced symbols only being referred to in the changed program codefile, and wherein the step of adding definitions comprises: parsing thechanged program code file to extract definitions for the public symbolstherein; and adding the extracted definitions to the definition set. 14.The method according to claim 6 wherein the program code file containspublic symbols having a definition in the changed program code file andreferenced symbols only being referred to in the changed program codefile wherein the step of producing proxy definitions comprises:determining if the definition set contains a definition for thereferenced symbols; parsing the changed program code file to extractinformation about the referenced symbols from the changed program codefile; formulating a proxy definition for the referenced symbols withouta definition in the definition set based on the extracted information;and adding the formulated proxy definition to one of the definition setor the changed program code file.
 15. The method according to claim 6wherein the step of removing symbols comprises: removing public symbolswith an associated file corresponding to the changed program code filefrom the public symbols table; and removing referenced symbols with anassociated file corresponding to the changed program code file from thereferenced symbols table.
 16. The method according to claim 6 whereinthe step of removing definitions comprises: removing public symbols withan associated file corresponding to the changed program code file fromthe definition set.
 17. A method of managing relationships betweenprogram code files in an integrated development environment, comprising:modifying a relational schema according to a change in one of theprogram code files, the relational schema comprising at least tworelated tables with symbols from the program code files based on aframework for models in the integrated development environment;determining a relationship between the at least two tables in therelational schema; modifying a definition set according to the change toinclude definitions from the changed program code file for symbolstherefrom in the relational schema into the definition set, thedefinition set retaining symbol definitions for the program code files;and producing proxy definitions for use with the definition set for eachsymbol in the changed program code file without a definition in thedefinition set.
 18. The method according to claim 17 wherein the changeis one of “add”, “remove” and “update” and wherein the step of modifyingthe relational schema comprises: removing symbols from the changedprogram code file from the relational schema if the change is one of“remove” and “update”; incorporating symbols from the changed programcode file in the relational schema if the change if one of “add” and“update”.
 19. The method according to claim 18 wherein the step ofincorporating symbols comprises: generating a public symbols table inthe relational schema for public symbols in the changed program codefile, the public symbols being symbols having a definition in thechanged program code file; and generating a referenced symbols table inthe relational schema for referenced symbols in the changed program codefile, the referenced symbols being symbols only referred to in thechanged program code file.
 20. The method according to claim 19 whereinthe step of generating the public symbols table comprises: locatingpublic symbols in the changed program code file; and adding the locatedpublic symbols to the public symbols table; and wherein the step ofgenerating a referenced symbols table comprises: locating referencedsymbols in the changed program code file; and adding the locatedreferenced symbols to the referenced symbols table.
 21. The methodaccording to claim 18 wherein the step of removing symbols comprises:removing public symbols with an associated file corresponding to thechanged program code file from the public symbols table; and removingreferenced symbols with an associated file corresponding to the changedprogram code file from the referenced symbols table.
 22. The methodaccording to claim 17 wherein the step of determining the relationshipcomprises: generating a relationships table in the relational schemacontaining the relationship between the at least two tables.
 23. Themethod according to claim 17 wherein the changed program code filechange is one of “add”, “remove” and “update” and wherein the step ofmodifying the definition set comprises: removing definitions from thedefinition set for symbols from the changed program code file that werepreviously removed from the relational schema; and adding definitions tothe definition set from the changed program code file for symbolspreviously incorporated into the relational schema.
 24. The methodaccording to claim 23 wherein the changed program code file containspublic symbols having a definition in the changed program code file andreferenced symbols only being referred to in the changed program codefile, and wherein the step of adding definitions comprises: parsing thechanged program code file to extract definitions for the public symbolstherein; and adding the extracted definitions to the definition set. 25.The method according to claim 23 wherein the step of removingdefinitions comprises: removing public symbols with an associated filecorresponding to the changed program code file from the definition set.26. The method according to claim 17 wherein the changed program codefile contains public symbols having a definition in the changed programcode file and referenced symbols only being referred to in the changedprogram code file wherein the step of producing proxy definitionscomprises: determining if the definition set contains a definition forthe referenced symbols; parsing the changed program code file to extractinformation about the referenced symbols from the changed program codefile; formulating a proxy definition for the referenced symbols withouta definition in the definition set based on the extracted information;and adding the formulated proxy definition to one of the definition setor the changed program code file.
 27. A system for incorporating aprogram code file into an integrated development environment comprising:a save mechanism for modifying a relational schema according to a changein one of the program code files, the relational schema comprising atleast two related tables with symbols from the program code files basedon a framework for models in the integrated development environment; avalidation mechanism for determining a relationship between the at leasttwo tables in the relational schema; a dependency set mechanism formodifying a definition set according to the change to includedefinitions from a changed program code file for symbols therefrom inthe relational schema into the definition set, the definition setretaining symbol definitions for the program code files; a proxymechanism for producing proxy definitions for use with the definitionset for each symbol in the changed program code file without adefinition in the definition set; a database for retaining therelational schema, the relationship between the at least two tables andthe definition set; and a controller for coordinating the savemechanism, the validation mechanism, the dependency set mechanism, theproxy mechanism and communications with the database.
 28. The systemaccording to claim 27 wherein the change is one of “add”, “remove,” and“update” and wherein the save mechanism comprises: a schema formationmechanism for incorporating symbols from the changed program code fileinto the relational schema is the change is “add”; and an updatemechanism for coordinating modifying the relational schema if the changeis one of “update” and “remove”.
 29. The system according to claim 28wherein the update mechanism comprises: a remove symbols mechanism forremoving symbols from in the changed program code file from a relationalschema if the change is one of “remove” and “update”; and an updatemechanism for coordinating the schema formation mechanism and the removesymbols mechanism if the change is “update”.
 30. The system according toclaim 28 wherein the schema formation mechanism comprises: a publicsymbols mechanism for generating a public symbols table in therelational schema for public symbols in the changed program code file,the public symbols being symbols having a definition in the changedprogram code file, wherein the public symbols table comprises anidentifier for the public symbols and a location of the changed programcode file and a referenced symbols mechanism generating a referencedsymbols table in the relational schema for referenced symbols in thechanged program code file, the referenced symbols being symbols onlyreferred to in the changed program code file, wherein the referencedsymbols table comprises an identifier for the referenced symbol and alocation of the changed program code file.
 31. The system according toclaim 27 wherein the validation mechanism comprises: a relationshipmechanism for generating a relationships table in the relational schemacontaining the relationship between the at least two tables; and amatching mechanism for matching entries in the at lest two tables. 32.The system according to claim 27 wherein the changed program code filecontains public symbols having a definition in the changed program codefile and referenced symbols only being referred to in the changedprogram code file, and wherein the matching mechanism comprises: adependence match mechanism for determining dependence relationships fromthe referenced symbols in the changed program code file based on thepublic symbols table; and a dependency match mechanism for determiningdependency relationships from the public symbols in the changed programcode file based on the referenced symbols table.
 33. The systemaccording to claim 27 wherein the dependency set interfaces with thereferenced symbols mechanism and the public symbols mechanism.
 34. Thesystem according to claim 27 wherein the controller comprises: a changedetection mechanism for detecting the change in the changed program codefile.
 35. A computer-readable medium having computer-executableinstructions for incorporating a program code file into an integrateddevelopment environment, comprising: generating a relational schema ofsymbols in the program code file based on a framework for models in theintegrated development environment, the schema comprising at least tworelated tables; determining a relationship between the at least twotables in the relational schema; adding definitions from the programcode file for symbols in the relational schema to a definition setretaining definitions of symbols; and producing proxy definitions foruse with the definition set for each symbol in the program code filewithout a definition in the definition set.
 36. A computer-readablemedium having computer-executable instructions for managingrelationships between program code files in an integrated developmentenvironment, comprising: detecting a change in one of the program codefiles as being one of “add”, “remove” and “update”; removing symbols inthe changed program code file from a relational schema if the change isone of “remove” and “update”, the relational schema comprising at leasttwo related tables with symbols from the program code files based on aframework for models in the integrated development environment;incorporating symbols from the changed program code file in therelational schema if the change is one of “add” and “update”; verifyinga relationship between the at least two tables in the relational schema;removing definitions from a definition set for symbols from the changedprogram code file that were previously removed from the relationalschema, the definition set retaining symbol definitions for the programcode files; adding definitions to the definition set from the changedprogram code file for symbols previously incorporated into therelational schema; and producing proxy definitions for use with thedefinition set for each symbol in the changed program code filepreviously incorporated into the relational schema without a definitionin the definition set.
 37. A computer-readable medium havingcomputer-executable instructions for managing relationships betweenprogram code files in an integrated development environment, comprising:modifying a relational schema according to a change in one of theprogram code files, the relational schema comprising at least tworelated tables with symbols from the program code files based on aframework for models in the integrated development environment;determining a relationship between the at least two tables in therelational schema; modifying a definition set according to the filechange to include definitions from the changed program code file forsymbols therefrom in the relational schema into the definition set, thedefinition set retaining symbol definitions for the program code files;and producing proxy definitions for use with the definition set for eachsymbol in the changed program code file without a definition in thedefinition set.